package four;

public class A065 {


    public int findMin(int[] nums) {
        int n = nums.length;
        int left=0,right=n-1;
        while(left < right) {
            int mid = left + (right-left)/2;
            //数组分为AB、CD两段。都是严格递增的，AB段的数字都大于CD段的
            //如果mid落在AB段，则说明,最小值在CD段
            //判断条件：mid的值大于left端和right的，如果数组有序则不成立
            if(nums[mid]>nums[right] && nums[mid]>=nums[left]) left = mid+1;
            else right=mid;
        }
        return nums[left];
    }
}
